﻿using Prism.Events;
using Prism.Ioc;
using Prism.Unity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;

namespace Zhy.MvvmBaseObject
{
    /// <summary>
    /// 这种方式和App.xaml下的实现效果是一样的。
    /// 这种方式可以实现在非App状态下打开程序。
    /// </summary>
    public class Startup : PrismBootstrapper
    {
        /// <summary>
        /// 提供主窗口的对象
        /// </summary>
        /// <returns></returns>
        protected override DependencyObject CreateShell()
        {
            // 注入主窗体的方式一
            var ea = Container.Resolve<IEventAggregator>();
            return new MainWindow(ea) { Title = "Prism Start" };
            // 注入主窗体的方式二
            //return Container.Resolve<MainWindow>();
            
            // 普通的启用主页面
            //return new MainWindow() { Title = "Prism Start" };
        }

        /// <summary>
        /// 业务中所有需要注入的对象，在这个方法里注册 
        /// </summary>
        /// <param name="containerRegistry"></param>
        protected override void RegisterTypes(IContainerRegistry containerRegistry)
        {
            
        }
    }
}
